OpenClaw 接入企微(个人微信对话)保姆教程
OpenClaw 接入企微(个人微信对话)保姆教程
前两天我将OpenClaw和微信对接完成,这两天都是用微信在和OpenClaw对话,确实挺方便的。
今天抽空把教程整理分享出来,希望对你有用。任何问题可以留言或者私信。
“
核心插件由 @RainbowRain9(Cai Hongyu)提供与维护,特此致敬感谢。
“
本文把“OpenClaw 连接企业微信(个人微信可对话)”的完整流程整理成一篇能直接照做的保姆级教程。
为什么我们推荐用企业微信来接入微信(更安全)
OpenClaw 接入微信,其实市面上也有不少“直接接个人微信”的方案(各种非官方接入方式)。
但这类方案通常存在 封号风险,而且稳定性不可控。
所以本文选择一条更稳的路:用企业微信(官方允许的方式)把 OpenClaw 接入到微信体系里。
后面你会看到:通过企业微信的「微信插件」,你依然可以在个人微信里打开入口进行对话。
方案选择:机器人 vs 自建应用
企业微信有两种常见接入方式:智能机器人和 自建应用。
很多人一上来就选机器人,结果用着用着发现:只能被动一问一答,想要“定时提醒 / 主动推送 / 自动汇报”,做不到。
对比表(帮你快速做选择)
功能智能机器人自建应用被动回复消息✅✅主动发送消息❌✅支持群聊✅❌需要企业认证❌❌需要 corpSecret❌✅需要 IP 白名单❌✅配置复杂度简单中等
最大的区别(一句话讲清楚)
- 机器人:只能被动回复(你问一句,它答一句)。
- 自建应用:不仅能回复,还能 主动给你发消息(定时任务、日报、提醒、监控报警等)。
所以本文推荐自建应用的方式
另外,自建应用还可以通过企业微信的「微信插件」让你在个人微信里也能对话(这点非常爽)。
为什么我更推荐“个人电脑部署”(尤其 Mac)
如果你有一台 VPS / 云服务器:固定 IP、配置确实更省事。
但我更推荐把 OpenClaw 跑在个人电脑上,尤其是 Mac:
- OpenClaw 对 macOS 的体验更友好(你日常就在 Mac 上用它,最顺手)
- 个人助理的很多能力,最终要和你电脑里的东西联动:文件、浏览器、桌面操作、脚本、自动化……放在本机更自然
- 个人电脑唯一麻烦点:公网回调 + IP 白名单
- 所以本文第一部分专门教你:用 Cloudflare Tunnel把回调打通
- 同时把 企业可信 IP(白名单)这坑提前讲透,避免“能收不能发”
前置条件(建议先对照检查)
本文默认你已经具备以下条件,否则中途会卡住:
-
OpenClaw 已安装并能正常运行
- 已经在你计划使用的环境里部署好:可能是你的个人电脑,也可能是 VPS / 云服务器。
你已经开通了企业微信(个人也可以)
- 企业微信个人就能申请,不需要企业认证,流程很方便。
-
直接去企业微信官网开通一个企业即可。https://work.weixin.qq.com
你已经拥有一个域名
- 后面配置回调 URL、Cloudflare Tunnel、HTTPS 等都会用到域名。
- 如果还没有域名:建议直接去腾讯云的域名服务申请一个(现在很多域名很便宜,一年也就一点点钱)。
0. 先读这段:本教程实质上分两部分(看你是哪种部署条件)
企业微信的自建应用需要企业微信服务器能访问到你的 回调 URL。
这里分两种典型情况:
A. 你有固定公网 IP(VPS/云服务器 + 域名/证书)
- 你有 固定公网 IP
- 你可以直接在服务器上跑 OpenClaw Gateway(或做 Nginx/Caddy 反代)
- 企业微信后台的 企业可信 IP可以直接填你的服务器公网 IP
➡️ 这种情况:你可以跳过第一部分,直接从 第二部分开始做企业微信自建应用配置。
B. 你想在家里电脑 / Mac 上跑 OpenClaw(无固定公网 IP)
- 家用宽带 IP 会变
- 企业微信要访问回调 URL:直接用家宽 IP 不稳定(腾讯好像也不允许)
- 你也不想折腾路由器端口映射
- 也不想承担花生壳类似的内网穿透app可能带来的费用和风险
➡️ 这种情况:先做第一部分 Cloudflare Tunnel(把公网域名稳定转发到本机),
然后再继续做 第二部分企业微信自建应用配置。
第一部分:在家里电脑 / Mac 上部署(Cloudflare Tunnel 解决公网回调)
“
这一部分的目标很简单:让企业微信能稳定访问到你本机的 OpenClaw 回调地址。
流程:公网域名 → Cloudflare → Tunnel → 转发到本机端口
1. 准备工作
你需要:
- 一个域名(例如:example.com)
- 一个子域名作为回调入口(例如:wecom.example.com)
- 一台可联网的 Mac/电脑(macOS 建议已安装 Homebrew)
- 本机能运行 OpenClaw(第二部分会安装 wecom-app 插件)
2. 把域名接入 Cloudflare(DNS 托管)
-
在 Cloudflare (https://www.cloudflare.com/zh-cn/)控制台 Add (如图第一个,后面选择免费套餐),按提示拿到两条 NS(Nameservers)
-
去你的域名服务商(例如腾讯云/阿里云/Namesilo 等),把 Nameserver 改成 Cloudflare 提供的 NS
- 等 Cloudflare 上显示站点变为 Active(DNS 生效通常需要一点时间)
3. 安装 cloudflared(只给一个确定命令)
macOS(Homebrew):
brew install cloudflared
which cloudflared
cloudflared --version
4. 创建 Tunnel 并绑定子域名
4.1 登录授权
cloudflared tunnel login
浏览器会让你选站点,选自己的域名授权
4.2 创建 tunnel
cloudflared tunnel create openclaw
4.3 绑定子域名到 tunnel(自动创建 DNS 记录)
把 wecom.example.com换成你的子域名:
cloudflared tunnel route dns clawdbot wecom.example.com
5. 找到 OpenClaw Gateway 在本机监听的端口(非常关键)
Cloudflare Tunnel 需要知道:公网请求进来后,要转发到你本机哪个端口。
如果端口不对,企业微信后台保存回调时会直接失败。
先把 OpenClaw Gateway(以及第二部分的 wecom-app)跑起来后,再查端口:
lsof -nP -iTCP -sTCP:LISTEN | grep -E "node|claw|wecom|gateway"
常见默认端口是 18789,但以你机器实际结果为准。
6. 配置 cloudflared 转发(config.yml)
创建文件:~/.cloudflared/config.yml
把 <你的用户名>、<你的TunnelID>、端口替换成你自己的:
tunnel: clawdbot
credentials-file:/Users/<你的用户名>/.cloudflared/<你的TunnelID>.json
ingress:
-hostname:wecom.example.com
service:http://127.0.0.1:18789
-service:http_status:404
7. 启动 Tunnel 并测试公网连通
前台启动(先用于测试):
cloudflared tunnel run clawdbot
测试公网是否能打到回调路径(把域名换成你的):
curl -i https://wecom.example.com/wecom-app
你可能会看到类似 400 missing query params,这往往是正常的——企业微信验证时会带 query 参数。
(如果你看到的是“连接失败/超时/502”,那就是 tunnel 或本机端口没通。)
8. 关键补充:企业可信 IP 白名单(不配就会“能收不能发”)
这一段非常容易踩坑:
- 你通过企业微信给 OpenClaw 发消息:通常没问题(企业微信 → 你的回调)
- 但 OpenClaw 要回复你/ 主动发消息:企业微信会要求你配置 企业可信 IP(白名单)
- 否则就会出现:能收到消息,但回复/发送失败
8.1 查“本机当前出口公网 IP”
在你跑 OpenClaw 的那台机器上执行(任选一个):
curl -s https://api.ipify.org ; echo
或者
curl -s ifconfig.me ; echo
得到一个公网 IP(比如 1.2.3.4)。
8.2 把这个 IP 加到企业微信「企业可信 IP」
路径:企业微信管理后台 → 你的自建应用 → 企业可信 IP→ 添加 1.2.3.4
8.3 为什么这一步在家用环境更重要?
因为家用宽带公网 IP 不是固定的:
- 过一段时间 IP 变了,你就可能突然“回复不了/发不出去”
- 这时第一反应就是:重新查出口公网 IP → 更新白名单
“
如果你不想老改白名单,后面可以考虑用一台固定 IP 的服务器做中继转发,把出口 IP 固定下来。
更详细的白名单说明,后面第二部分 3.3也会再讲一次。
9. (可选)macOS 开机自启 cloudflared(LaunchAgent)
如果你希望 Mac 开机登录后自动运行 tunnel,可以用 LaunchAgent。
下面是一套可直接照做的版本(按你的实际路径替换)。
9.1 找到 cloudflared 的绝对路径
which cloudflared
9.2 创建 LaunchAgent 配置文件
创建文件:
mkdir -p ~/Library/LaunchAgents
nano ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist
把以下内容粘贴进去(注意替换两处路径:/opt/homebrew/bin/cloudflared和你的用户名):
9.3 加载并启动
launchctl load ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist
launchctl start com.cloudflare.cloudflared
9.4 查看是否在运行
launchctl list | grep cloudflared
9.5 停止 / 卸载
launchctl stop com.cloudflare.cloudflared
launchctl unload ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist
第二部分:企业微信自建应用(wecom-app)配置(核心重点)
“
你已经有稳定公网回调地址后(固定 IP 或 Cloudflare Tunnel),就可以做这一部分了。
这部分就是让企业微信“自建应用”真正连上 OpenClaw。
0. 前置条件
你需要:
- 企业微信账号(个人也能注册企业)
- 一个公网可访问的回调地址(推荐 HTTPS)
- OpenClaw 已安装并可运行
- Node.js + pnpm(用于构建插件)
1. 安装 wecom-app 插件(openclaw-china)
1.1 克隆仓库
cd ~/.openclaw/extensions
git clone https://github.com/RainbowRain9/openclaw-china.git
1.2 安装依赖
cd ~/.openclaw/extensions/openclaw-china/extensions/wecom-app
pnpm install
1.3 构建插件
pnpm build
1.4 安装到 OpenClaw(链接模式)
openclaw plugins install -l ~/.openclaw/extensions/openclaw-china/extensions/wecom-app
“
-l是链接模式:你改插件源码后不用重装,重启 Gateway 即可生效。
1.5 验证安装
openclaw plugins list
确认列表里出现:@openclaw-china/wecom-app
2. 企业微信后台:创建「自建应用」并拿到凭证
2.1 创建应用
企业微信管理后台 →「应用管理」→「自建」→「创建应用」
填写应用名称、logo、可见范围等。
2.2 获取 AgentId 与 Secret(corpSecret)
进入应用详情页,记录:
- AgentId
- Secret(这个就是 corpSecret)
2.3 获取企业 ID(corpId)
「我的企业」→ 企业信息页底部找到:企业 ID(就是 corpId)
3. 企业微信后台:配置「接收消息服务器」(回调)
3.1 打开「设置 API 接收」
在应用详情页找到「接收消息」→「设置 API 接收」
3.2 填写 URL / Token / EncodingAESKey(重点)
URL 格式:
<协议>://<域名或IP>:<端口>/<路径>
示例(推荐域名):
- https://wecom.example.com/wecom-app
示例(如果你是服务器固定 IP 直连):
- http://123.45.67.89:18789/wecom-app
解释:
- 端口:OpenClaw Gateway 监听端口(常见 18789,以实际为准)
- 路径:必须与 OpenClaw 配置里的 webhookPath一致(默认 /wecom-app)
- Token:你自定义一个字符串(比如 your-random-token,建议随机获取)
- EncodingAESKey:后台点“随机获取”(一般 43 位)
“
非常重要:先把 OpenClaw 配好并启动,再回到后台点「保存」,否则验证会失败。
3.3 企业可信 IP(白名单)——自建应用必须配
这一步决定你能不能“回复/主动发消息”。
在应用详情页找到「企业可信 IP」,添加你的公网出口 IP:
- 固定 IP / VPS:填你的 VPS 公网 IP(稳定)
- 家用 + Cloudflare Tunnel:填你家宽当前的出口公网 IP(可能会变)
- 如果之后突然发不出去,优先怀疑:出口 IP 变了 → 更新白名单
- 想彻底稳定:可以考虑用固定 IP 服务器做中继转发
4. 配置 OpenClaw(wecom-app 通道参数)
你可以用命令行写入(推荐),或直接编辑 ~/.openclaw/openclaw.json。
4.1 命令行配置(推荐)
把下面字段替换成你自己的:
- token:和后台一致
- encodingAESKey:和后台一致
- corpId:企业 ID
- corpSecret:应用 Secret
- agentId:应用 AgentId
openclaw config set channels.wecom-app '{
"enabled": true,
"webhookPath": "/wecom-app",
"token": "your-random-token",
"encodingAESKey": "your-43-char-encoding-aes-key",
"corpId": "your-corp-id",
"corpSecret": "your-app-secret",
"agentId": 1000002
}' --json
4.2 直接编辑 openclaw.json(可选)
编辑:~/.openclaw/openclaw.json:
{
"channels": {
"wecom-app": {
"enabled": true,
"webhookPath": "/wecom-app",
"token": "your-random-token",
"encodingAESKey": "your-43-char-encoding-aes-key",
"corpId": "your-corp-id",
"corpSecret": "your-app-secret",
"agentId": 1000002,
"inboundMedia": {
"enabled": true,
"maxBytes": 10485760,
"keepDays": 7
}
}
}
}
5. 重启 OpenClaw Gateway
openclaw gateway restart
6. 回到企业微信后台:保存回调配置并测试
6.1 保存
回到「设置 API 接收」页面,点「保存」。
如果 URL/Token/AESKey/端口/路径都对,应该能保存成功。
6.2 测试收发
- 在企业微信 App 中打开你创建的应用,发一条消息
- 看 OpenClaw 日志是否收到消息并回复
- 如果“能收到但回复失败”,优先检查 企业可信 IP 白名单
7. 在个人微信里使用入口
企业微信后台「我的企业」里有「微信插件」:用个人微信扫码「邀请关注」
之后你可以在个人微信里打开这个企业应用进行对话。
常见坑位与排障
1)企业微信后台保存回调失败(“请求不通过”)
按顺序排查:
- OpenClaw 是否已启动并监听正确端口(本机端口是否对)
- 回调 URL 的路径是否与 webhookPath一致(比如都为 /wecom-app)
- Token / EncodingAESKey 是否完全一致(不要多空格)
- 公网是否可访问(用 curl 测试你的回调 URL)
2)能收到消息,但发不出去/回复不了
90% 都是这两个原因:
- corpId / corpSecret / agentId配错
- 企业可信 IP没配或不包含你当前出口公网 IP(家宽变了)
3)Unknown target / send requires a target?
在 wecom-app 里,target 通常是 user:
示例:
send user:CaiHongYu 你好
4)SVG 发出去不是图片?
企业微信对图片消息更偏 png/jpg,svg可能会被当文件或失败。建议用 png/jpg。
附录:快速检查清单(照着对就不容易错)
- [ ] 插件已安装:openclaw plugins list能看到 @openclaw-china/wecom-app
- [ ] OpenClaw Gateway 正在运行,并监听端口(常见 18789,以实际为准)
- [ ] 企业微信后台 URL 路径与 webhookPath一致(例如 /wecom-app)
- [ ] Token / AESKey 完全一致(不要多空格)
- [ ] 企业可信 IP 已配置并包含你的出口公网 IP
- [ ] (家用部署)Cloudflare Tunnel 能 curl通你的域名回调地址